// function * fn () {
//     for(let i of [2, 3, 4, 5]) {
//         yield i;
//     }
// }

function * fn () {
    for(let i of [2, 3, 4, 5]) {
        try {
            yield i;
        } catch(e) {}
    }
}

var g = fn();

console.log(g.next());

try {
    g.throw('error');
} catch(e) {
    console.log(e);
}

console.log(g.next());

// { value: 2, done: false }
// error
// { value: undefined, done: true }

// 容错后

// { value: 2, done: false }
// { value: 4, done: false }